package main
import (
	"fmt"
	"net"
	"io"
	"ChatRoom/common/message"
	"ChatRoom/server/processes"
	"ChatRoom/server/utils"
)

//先创建一个Processor的结构体
type Processor struct{
	Conn net.Conn
}
//编写一个ServerProcessMes函数
//根据客户端发送消息种类不同，决定调用哪个函数来处理
func (this *Processor)serverProcessMsg(msg *message.Message)(err error){
	switch msg.Type{
		case message.LoginMsgType:
			//处理登陆消息
			//创建一个UserProcess实例
			up :=&processes.UserProcess{
				Conn:this.Conn,
			}
			err = up.ServerProcessLogin(msg)
		case message.RegisterMsgType:
			//处理注册消息
		default:
			fmt.Println("消息类型不存在，无法处理...")
	}
	return
}

func (this *Processor)process2()(err error){
	//循环读取客户端发送的信息
	for{
		tf := &utils.Transfer{
			Conn:this.Conn,
		}
		msg,err := tf.ReadPkg()
		if err!=nil{
			fmt.Println("readpkg err=",err)
			if err==io.EOF{
				fmt.Println("客户端退出，服务器也退出")
				return err
			}
			return err
		}
		//fmt.Println("包体内容为 msg=",msg)
		err = this.serverProcessMsg(&msg)
		if err!=nil{
			return err
		}
	}
}